package cn.tradewin.advisor.activiti.service;

import java.util.List;
import java.util.Map;

import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.task.Task;

public interface ActivitiService {
	
	
	ActivitiProcessStatus getProcessStatus(String processInstanceId) throws Exception;
		
	Task getCurrentActivity(String processInstancdId) throws Exception;
	
	String getCurrentActivitiName(String processInstanceId) throws Exception;
	
	/**
	 * 
	 * @param processDefinitionId
	 * @return
	 * @throws Exception
	 */
	ProcessDefinition findProcessDefinitionByDefinitionId(String processDefinitionId) throws Exception;
	
	/**
	 * 
	 * @param processInstanceId
	 * @return
	 * @throws Exception
	 */
	ProcessDefinition findProcessDefinitionByProcessInstanceId(String processInstanceId) throws Exception;
	
	/**
	 * 
	 * @param processInstanceId
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> traceProcess(String processInstanceId) throws Exception;
	
	/**
	 * 
	 * @param userid
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> todoList(String userid) throws Exception;
	
}
